type toArray0<T> = T[]
type toArray<T> = T extends any ? T[] : never

type NumArray = toArray<number>

// type NumAndStringArray0 = (string | number)[]
type NumAndStringArray0 = toArray0<number | string>

// type NumAndStringArray = number[] | string[]
type NumAndStringArray = toArray<number | string>

